接着前面的讲,这篇介绍一下Spark Streaming的调度细节,首先来看看Job的提交。
承前启后
在StreamingContext中有一个start方法,调用schduler.start()来启动调度器(其实这里是一个实例化的JobScheduler对象)
Job的提交过程
跟踪scheduler.start()方法(最好使用Intellij IDEA来看源码,可以直接快捷定位,免去了寻找的麻烦,关键是教育版免费:-),我之前是用Sublime来看的,现在想起来,哭瞎T_T)。
走进jobGenerator中的start方法
|
|
真正的调度发生在事件消息处理阶段,我们看processEvent
|
|
那么接下来就要看generateJobs了
|
|
到了这一步,就看看提交JobSet了,submitJobSet走起~~
|
|
小结
这里从源码开始简单介绍了一下Job的提交过程,实际上Streaming的调度最终要落实到task上,将会在下面进行分析。